// This file is part of rdma-core. It is subject to the license terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/rdma-core/master/COPYRIGHT. No part of rdma-core, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file.
// Copyright © 2016 The developers of rdma-core. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/rdma-core/master/COPYRIGHT.


extern "C"
{
	pub fn shmem_long_add(target: *mut c_long, value: c_long, pe: c_int);
	pub fn shmem_long_and_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
	pub fn shmem_long_cswap(target: *mut c_long, cond: c_long, value: c_long, pe: c_int) -> c_long;
	pub fn shmem_long_fadd(target: *mut c_long, value: c_long, pe: c_int) -> c_long;
	pub fn shmem_long_fetch(dest: *const c_long, pe: c_int) -> c_long;
	pub fn shmem_long_finc(target: *mut c_long, pe: c_int) -> c_long;
	pub fn shmem_long_g(addr: *mut c_long, pe: c_int) -> c_long;
	pub fn shmem_long_get(dest: *mut c_long, src: *const c_long, nelems: usize, pe: c_int);
	pub fn shmem_long_get_nbi(dest: *mut c_long, source: *const c_long, nelems: usize, pe: c_int);
	pub fn shmem_long_iget(target: *mut c_long, source: *const c_long, tst: isize, sst: isize, nelems: usize, pe: c_int);
	pub fn shmem_long_inc(target: *mut c_long, pe: c_int);
	pub fn shmem_long_iput(target: *mut c_long, source: *const c_long, tst: isize, sst: isize, nelems: usize, pe: c_int);
	pub fn shmem_long_max_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
	pub fn shmem_long_min_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
	pub fn shmem_long_or_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
	pub fn shmem_long_p(addr: *mut c_long, value: c_long, pe: c_int);
	pub fn shmem_long_prod_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
	pub fn shmem_long_put(dest: *mut c_long, src: *const c_long, nelems: usize, pe: c_int);
	pub fn shmem_long_put_nbi(dest: *mut c_long, source: *const c_long, nelems: usize, pe: c_int);
	pub fn shmem_long_set(dest: *mut c_long, value: c_long, pe: c_int);
	pub fn shmem_long_sum_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
	pub fn shmem_long_swap(target: *mut c_long, value: c_long, pe: c_int) -> c_long;
	pub fn shmem_long_wait(ivar: *mut c_long, cmp_value: c_long);
	pub fn shmem_long_wait_until(ivar: *mut c_long, cmp: c_int, cmp_value: c_long);
	pub fn shmem_long_xor_to_all(target: *mut c_long, source: *mut c_long, nreduce: c_int, PE_start: c_int, logPE_stride: c_int, PE_size: c_int, pWrk: *mut c_long, pSync: *mut c_long);
}
